//给定一个字符串 s ，验证 s 是否是 回文串 ，只考虑字母和数字字符，可以忽略字母的大小写。 
//
// 本题中，将空字符串定义为有效的 回文串 。 
//
// 
//
// 示例 1： 
//
// 
//输入: s = "A man, a plan, a canal: Panama"
//输出: true
//解释："amanaplanacanalpanama" 是回文串 
//
// 示例 2： 
//
// 
//输入: s = "race a car"
//输出: false
//解释："raceacar" 不是回文串 
//
// 
//
// 提示： 
//
// 
// 1 <= s.length <= 2 * 10⁵ 
// 字符串 s 由 ASCII 字符组成 
// 
//
// 
//
// 
// 注意：本题与主站 125 题相同： https://leetcode-cn.com/problems/valid-palindrome/ 
//
// Related Topics 双指针 字符串 👍 71 👎 0


package LeetCode.editor.cn;


import java.util.List;
import java.util.stream.Collectors;

/**
 * @author ldltd
 * @date 2025-01-17 19:49:06
 * @description LCR 018.验证回文串
 
 */
 
public class XltzEq {
    public static void main(String[] args) {
    //测试代码
    XltzEq fun = new XltzEq();
    Solution solution= fun.new Solution();
    solution.isPalindrome("A man, a plan, a canal: Panama");
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean isPalindrome(String s) {
        List<Character> collect = s.chars().mapToObj(ch -> (char) ch).filter(Character::isLetterOrDigit)
                .map(Character::toUpperCase).collect(Collectors.toList());
        int t=0;
        while (t<collect.size()/2){
            if(collect.get(t)!=collect.get(collect.size()-t-1)) return false;
            t++;
        }
        return true;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
